The operating system may request a microprocessor to run at various performance levels (sometimes referred to as P-states). This is particularly useful in battery-operated devices in order to prolong battery life, although it may also be useful in desktop or server systems to reduce power consumption and its concomitant cost. For example, if the operating system detects that the workload is relatively low (e.g., the user is just watching a DVD which requires a relatively small fraction of the processing power of the microprocessor), the operating system may request the microprocessor to run in a performance-reduced state. Typically, the performance-reduced state includes the microprocessor operating at a reduced clock frequency (and typically a reduced operating voltage level). For example, if the operating system requests operation at the lowest performance running state, the microprocessor will reduce its operating frequency to the lowest ratio of the processor bus clock frequency at which the microprocessor is capable of operating (and request the power supply to reduce the operating voltage to the lowest level at which the microprocessor is capable of operating at the lowest clock ratio). For example, the microprocessor may include a phase-locked loop (PLL) that receives the bus clock signal and responsively generates the core clock signal as a ratio of the bus clock frequency, and the PLL has a finite number of ratios it can generate, and there is a lowest of these ratios.
However, even in the lowest performance running state, the workload imposed on the microprocessor by the software running on it (e.g., the operating system and application programs) may be very relatively small such that the microprocessor is idle a relatively large percentage of the time and therefore wasting power. For example, the software may be just looping waiting for user input (e.g., a mouse or keyboard click) with an occasional timer tick being serviced. Traditionally, in order to further reduce its power consumption from the lowest performance running state, the microprocessor must transition from a running state to a sleeping state, or power state (sometimes referred to as C-states), in which the microprocessor halts execution of instructions and may perform other power saving measures, such as disabling clock signals to portions of the microprocessor, or even removing power from portions of the microprocessor, such as cache memories. This is shown in FIG. 1, in which power consumption of the microprocessor is graphed as a function of the performance states and power states. However, the microprocessor cannot enter one of the sleeping states unless the operating system instructs it to do so. Therefore, what is needed is a way to reduce power consumption when the microprocessor is still in a running state but cannot lower its operating frequency any further.